﻿#define _CRT_SECURE_NO_WARNINGS 1

#include "SeqList.h"

// O2^N
//long long Fib(size_t N)
//{
//	if (N < 3)
//		return 1;
//
//	return Fib(N - 1) + Fib(N - 2);
//}
//
//// O(N) -- ŻΪ㷨
//
//
//long long Fac(size_t N)
//{
//	if (0 == N)
//		return 1;
//
//	return Fac(N - 1)*N;
//}
//
//void Func1()
//{
//	int a = 0;
//	printf("%p\n", &a);
//}
//
//void Func2()
//{
//	int b = 0;
//	printf("%p\n", &b);
//}
//
//int main()
//{
//	//printf("%lld\n", Fib(50));
//	//printf("%lld\n", Fac(10000));
//
//	Func1();
//	Func2();
//
//	return 0;
//}

void TestSeqList1()
{
	SL sl;
	SLInit(&sl);
	SLPushBack(&sl, 1);
	SLPushBack(&sl, 2);
	SLPushBack(&sl, 3);
	SLPushBack(&sl, 4);
	SLPushBack(&sl, 5);
	SLPushBack(&sl, 5);
	SLPushBack(&sl, 5);
	SLPushBack(&sl, 5);
	SLPushBack(&sl, 5);


	SLPrint(&sl);

	SLDestroy(&sl);
}

void TestSeqList2()
{
	/*SL* s = NULL;
	SLInit(s);*/

	SL sl;
	SLInit(&sl);
	SLPushBack(&sl, 1);
	SLPushBack(&sl, 2);
	SLPushBack(&sl, 3);
	SLPushBack(&sl, 4);
	SLPrint(&sl);

	SLPopBack(&sl);
	SLPrint(&sl);

	SLPushBack(&sl, 8);
	SLPrint(&sl);

	SLPopBack(&sl);
	SLPopBack(&sl);
	SLPopBack(&sl);
	SLPopBack(&sl);
	//SLPopBack(&sl);

	SLPrint(&sl);

	SLPushBack(&sl, 1);
	SLPushBack(&sl, 2);

	SLDestroy(&sl);
}

int main()
{
	TestSeqList2();

	/*int* p1 = malloc(4);
	int* p2 = realloc(p1, 20);
	int* p3 = realloc(p2, 2000);*/

	return 0;
}